package tools.mail;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import account.model.Account;
import account.model.Persoon;
import tools.old.files.RegistrerenModel;

public class Mail extends MailServer {

	//connectie maken met mailserver
	Session session = Session.getInstance(props,
			new javax.mail.Authenticator() {
		protected PasswordAuthentication getPasswordAuthentication() {
			return new PasswordAuthentication(username, password);
		}
	});

	// mail over nieuwe account naar user

	public void RegisterUserMail(Account a, Persoon p){
		try {
			Message message = new MimeMessage(session);
			message.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse(p.getEmail()));

			//bericht versturen naar opgegeven email
			message.setSubject("Project M - Uw account is aangemaakt");
			message.setText("Beste " + p.getVoornaam()
					+","
					+ "\n\n"
					+ "Bedankt voor het aanmaken van een account. Je kunt inloggen via ProjectM met het onderstaande gebruikersnaam en het door jou gekozen wachtwoord."
					+ "\n\n"
					+ "Gebruikersnaam: " + a.getGebruikersnaam()
					+ "\n"
					+ "Wachwoord: " + a.getWachtwoord()
					+ "\n\n"
					+ "Mocht je problemen hebben met je gebruikersnaam of met je wachtwoord, neem dan contact met ons op via dit e-mailadres."
					+ "\n\n"
					+ "Met vriendelijke groet,"
					+ "\n"
					+ "Project M"
					);
			Transport.send(message);
		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
	}

	// mail over nieuwe account naar admin

	public void RegisterAdminMail(Account a){
		try {
			Message message = new MimeMessage(session);
			message.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse("projectm257@gmail.com"));

			//bericht versturen naar opgegeven email
			message.setSubject("Project M - Nieuwe account aangemaakt");
			message.setText("Beste beheerder,"
					+ "\n\n"
					+ "Er is een nieuwe account geregistreerd:"
					+ "\n\n"
					+ "Gebruikersnaam: " + a.getGebruikersnaam()
					+ "\n\n"
					+ "Met vriendelijke groet,"
					+ "\n"
					+ "Project M"
					);
			Transport.send(message);
		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
	}
	
	public void recoverwachtwoord(Account a, Persoon p){
		try {
			Message message = new MimeMessage(session);
			message.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse(p.getEmail()));

			//bericht versturen naar opgegeven email
			message.setSubject("Project M - Uw account is aangemaakt");
			message.setText("Beste " + p.getVoornaam()
					+","
					+ "\n\n"
					+ "U heeft uw wachtwoord opgevraagt voor project-m"
					+ "\n\n"
					+ "Gebruikersnaam: " + a.getGebruikersnaam()
					+ "\n"
					+ "Wachwoord: " + a.getWachtwoord()
					+ "\n\n"
					+ "Mocht je problemen hebben met je gebruikersnaam of met je wachtwoord, neem dan contact met ons op via dit e-mailadres."
					+ "\n\n"
					+ "Met vriendelijke groet,"
					+ "\n"
					+ "Project M"
					);
			Transport.send(message);
		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
	}

}
